﻿namespace DimensionsHelper.LanguageService.Syntax;

internal interface IMetadataOrder
{
    /// <summary>
    ///     排序关键字集合
    ///     [ rot[ate] | ran[domize] | rev[erse] | asc[ending] | desc[ending] ] ]
    /// </summary>
    IReadOnlyList<SyntaxToken> OrderTokens { get; }

    /// <summary>
    ///     namespace 关键字
    /// </summary>
    SyntaxToken? NamespaceKeywordToken { get; }


    /// <summary>
    ///     fix 关键字
    /// </summary>
    SyntaxToken? FixKeywordToken { get; }


    /// <summary>
    ///     添加一个排序关键字
    /// </summary>
    void AddOrder(SyntaxToken token);


    /// <summary>
    ///     设置fix关键字
    /// </summary>
    void Fix(SyntaxToken fixKeywordToken);


    /// <summary>
    ///     更新namespace关键字
    /// </summary>
    void Update(SyntaxToken token);
}